// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*!
 * @file Object_t.cpp
 * This source file contains the implementation of the described types in the IDL file.
 *
 * This file was generated by the tool fastddsgen.
 */

#ifdef _WIN32
// Remove linker warning LNK4221 on Visual Studio
namespace {
char dummy;
}  // namespace
#endif  // _WIN32

#include "Object_t.h"

#include <fastcdr/Cdr.h>


#include <fastcdr/exceptions/BadParamException.h>
using namespace eprosima::fastcdr::exception;

#include <utility>




Object_t::Object_t()
{
}

Object_t::~Object_t()
{
}

Object_t::Object_t(
        const Object_t& x)
{
    m_label = x.m_label;
    m_mId = x.m_mId;
    m_mTop = x.m_mTop;
    m_mBottom = x.m_mBottom;
    m_mLeft = x.m_mLeft;
    m_mRight = x.m_mRight;
    m_mXDistance = x.m_mXDistance;
    m_mYDistance = x.m_mYDistance;
    m_mDistanceIsValid = x.m_mDistanceIsValid;
    m_mHeadway = x.m_mHeadway;
    m_mRealWidth = x.m_mRealWidth;
    m_mRealHeight = x.m_mRealHeight;
    m_mWidthHeightIsValid = x.m_mWidthHeightIsValid;
    m_mXVelocity = x.m_mXVelocity;
    m_mYVelocity = x.m_mYVelocity;
    m_mVelocityIsValid = x.m_mVelocityIsValid;
    m_mDiameter = x.m_mDiameter;
    m_mDiameterIsValid = x.m_mDiameterIsValid;
    m_mTrend = x.m_mTrend;
    m_mScore = x.m_mScore;
    m_mIntrusion = x.m_mIntrusion;
}

Object_t::Object_t(
        Object_t&& x) noexcept
{
    m_label = std::move(x.m_label);
    m_mId = x.m_mId;
    m_mTop = x.m_mTop;
    m_mBottom = x.m_mBottom;
    m_mLeft = x.m_mLeft;
    m_mRight = x.m_mRight;
    m_mXDistance = x.m_mXDistance;
    m_mYDistance = x.m_mYDistance;
    m_mDistanceIsValid = x.m_mDistanceIsValid;
    m_mHeadway = x.m_mHeadway;
    m_mRealWidth = x.m_mRealWidth;
    m_mRealHeight = x.m_mRealHeight;
    m_mWidthHeightIsValid = x.m_mWidthHeightIsValid;
    m_mXVelocity = x.m_mXVelocity;
    m_mYVelocity = x.m_mYVelocity;
    m_mVelocityIsValid = x.m_mVelocityIsValid;
    m_mDiameter = x.m_mDiameter;
    m_mDiameterIsValid = x.m_mDiameterIsValid;
    m_mTrend = x.m_mTrend;
    m_mScore = x.m_mScore;
    m_mIntrusion = x.m_mIntrusion;
}

Object_t& Object_t::operator =(
        const Object_t& x)
{

    m_label = x.m_label;
    m_mId = x.m_mId;
    m_mTop = x.m_mTop;
    m_mBottom = x.m_mBottom;
    m_mLeft = x.m_mLeft;
    m_mRight = x.m_mRight;
    m_mXDistance = x.m_mXDistance;
    m_mYDistance = x.m_mYDistance;
    m_mDistanceIsValid = x.m_mDistanceIsValid;
    m_mHeadway = x.m_mHeadway;
    m_mRealWidth = x.m_mRealWidth;
    m_mRealHeight = x.m_mRealHeight;
    m_mWidthHeightIsValid = x.m_mWidthHeightIsValid;
    m_mXVelocity = x.m_mXVelocity;
    m_mYVelocity = x.m_mYVelocity;
    m_mVelocityIsValid = x.m_mVelocityIsValid;
    m_mDiameter = x.m_mDiameter;
    m_mDiameterIsValid = x.m_mDiameterIsValid;
    m_mTrend = x.m_mTrend;
    m_mScore = x.m_mScore;
    m_mIntrusion = x.m_mIntrusion;
    return *this;
}

Object_t& Object_t::operator =(
        Object_t&& x) noexcept
{

    m_label = std::move(x.m_label);
    m_mId = x.m_mId;
    m_mTop = x.m_mTop;
    m_mBottom = x.m_mBottom;
    m_mLeft = x.m_mLeft;
    m_mRight = x.m_mRight;
    m_mXDistance = x.m_mXDistance;
    m_mYDistance = x.m_mYDistance;
    m_mDistanceIsValid = x.m_mDistanceIsValid;
    m_mHeadway = x.m_mHeadway;
    m_mRealWidth = x.m_mRealWidth;
    m_mRealHeight = x.m_mRealHeight;
    m_mWidthHeightIsValid = x.m_mWidthHeightIsValid;
    m_mXVelocity = x.m_mXVelocity;
    m_mYVelocity = x.m_mYVelocity;
    m_mVelocityIsValid = x.m_mVelocityIsValid;
    m_mDiameter = x.m_mDiameter;
    m_mDiameterIsValid = x.m_mDiameterIsValid;
    m_mTrend = x.m_mTrend;
    m_mScore = x.m_mScore;
    m_mIntrusion = x.m_mIntrusion;
    return *this;
}

bool Object_t::operator ==(
        const Object_t& x) const
{
    return (m_label == x.m_label &&
           m_mId == x.m_mId &&
           m_mTop == x.m_mTop &&
           m_mBottom == x.m_mBottom &&
           m_mLeft == x.m_mLeft &&
           m_mRight == x.m_mRight &&
           m_mXDistance == x.m_mXDistance &&
           m_mYDistance == x.m_mYDistance &&
           m_mDistanceIsValid == x.m_mDistanceIsValid &&
           m_mHeadway == x.m_mHeadway &&
           m_mRealWidth == x.m_mRealWidth &&
           m_mRealHeight == x.m_mRealHeight &&
           m_mWidthHeightIsValid == x.m_mWidthHeightIsValid &&
           m_mXVelocity == x.m_mXVelocity &&
           m_mYVelocity == x.m_mYVelocity &&
           m_mVelocityIsValid == x.m_mVelocityIsValid &&
           m_mDiameter == x.m_mDiameter &&
           m_mDiameterIsValid == x.m_mDiameterIsValid &&
           m_mTrend == x.m_mTrend &&
           m_mScore == x.m_mScore &&
           m_mIntrusion == x.m_mIntrusion);
}

bool Object_t::operator !=(
        const Object_t& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member label
 * @param _label New value to be copied in member label
 */
void Object_t::label(
        const std::string& _label)
{
    m_label = _label;
}

/*!
 * @brief This function moves the value in member label
 * @param _label New value to be moved in member label
 */
void Object_t::label(
        std::string&& _label)
{
    m_label = std::move(_label);
}

/*!
 * @brief This function returns a constant reference to member label
 * @return Constant reference to member label
 */
const std::string& Object_t::label() const
{
    return m_label;
}

/*!
 * @brief This function returns a reference to member label
 * @return Reference to member label
 */
std::string& Object_t::label()
{
    return m_label;
}


/*!
 * @brief This function sets a value in member mId
 * @param _mId New value for member mId
 */
void Object_t::mId(
        uint32_t _mId)
{
    m_mId = _mId;
}

/*!
 * @brief This function returns the value of member mId
 * @return Value of member mId
 */
uint32_t Object_t::mId() const
{
    return m_mId;
}

/*!
 * @brief This function returns a reference to member mId
 * @return Reference to member mId
 */
uint32_t& Object_t::mId()
{
    return m_mId;
}


/*!
 * @brief This function sets a value in member mTop
 * @param _mTop New value for member mTop
 */
void Object_t::mTop(
        int32_t _mTop)
{
    m_mTop = _mTop;
}

/*!
 * @brief This function returns the value of member mTop
 * @return Value of member mTop
 */
int32_t Object_t::mTop() const
{
    return m_mTop;
}

/*!
 * @brief This function returns a reference to member mTop
 * @return Reference to member mTop
 */
int32_t& Object_t::mTop()
{
    return m_mTop;
}


/*!
 * @brief This function sets a value in member mBottom
 * @param _mBottom New value for member mBottom
 */
void Object_t::mBottom(
        int32_t _mBottom)
{
    m_mBottom = _mBottom;
}

/*!
 * @brief This function returns the value of member mBottom
 * @return Value of member mBottom
 */
int32_t Object_t::mBottom() const
{
    return m_mBottom;
}

/*!
 * @brief This function returns a reference to member mBottom
 * @return Reference to member mBottom
 */
int32_t& Object_t::mBottom()
{
    return m_mBottom;
}


/*!
 * @brief This function sets a value in member mLeft
 * @param _mLeft New value for member mLeft
 */
void Object_t::mLeft(
        int32_t _mLeft)
{
    m_mLeft = _mLeft;
}

/*!
 * @brief This function returns the value of member mLeft
 * @return Value of member mLeft
 */
int32_t Object_t::mLeft() const
{
    return m_mLeft;
}

/*!
 * @brief This function returns a reference to member mLeft
 * @return Reference to member mLeft
 */
int32_t& Object_t::mLeft()
{
    return m_mLeft;
}


/*!
 * @brief This function sets a value in member mRight
 * @param _mRight New value for member mRight
 */
void Object_t::mRight(
        int32_t _mRight)
{
    m_mRight = _mRight;
}

/*!
 * @brief This function returns the value of member mRight
 * @return Value of member mRight
 */
int32_t Object_t::mRight() const
{
    return m_mRight;
}

/*!
 * @brief This function returns a reference to member mRight
 * @return Reference to member mRight
 */
int32_t& Object_t::mRight()
{
    return m_mRight;
}


/*!
 * @brief This function sets a value in member mXDistance
 * @param _mXDistance New value for member mXDistance
 */
void Object_t::mXDistance(
        int32_t _mXDistance)
{
    m_mXDistance = _mXDistance;
}

/*!
 * @brief This function returns the value of member mXDistance
 * @return Value of member mXDistance
 */
int32_t Object_t::mXDistance() const
{
    return m_mXDistance;
}

/*!
 * @brief This function returns a reference to member mXDistance
 * @return Reference to member mXDistance
 */
int32_t& Object_t::mXDistance()
{
    return m_mXDistance;
}


/*!
 * @brief This function sets a value in member mYDistance
 * @param _mYDistance New value for member mYDistance
 */
void Object_t::mYDistance(
        int32_t _mYDistance)
{
    m_mYDistance = _mYDistance;
}

/*!
 * @brief This function returns the value of member mYDistance
 * @return Value of member mYDistance
 */
int32_t Object_t::mYDistance() const
{
    return m_mYDistance;
}

/*!
 * @brief This function returns a reference to member mYDistance
 * @return Reference to member mYDistance
 */
int32_t& Object_t::mYDistance()
{
    return m_mYDistance;
}


/*!
 * @brief This function sets a value in member mDistanceIsValid
 * @param _mDistanceIsValid New value for member mDistanceIsValid
 */
void Object_t::mDistanceIsValid(
        bool _mDistanceIsValid)
{
    m_mDistanceIsValid = _mDistanceIsValid;
}

/*!
 * @brief This function returns the value of member mDistanceIsValid
 * @return Value of member mDistanceIsValid
 */
bool Object_t::mDistanceIsValid() const
{
    return m_mDistanceIsValid;
}

/*!
 * @brief This function returns a reference to member mDistanceIsValid
 * @return Reference to member mDistanceIsValid
 */
bool& Object_t::mDistanceIsValid()
{
    return m_mDistanceIsValid;
}


/*!
 * @brief This function sets a value in member mHeadway
 * @param _mHeadway New value for member mHeadway
 */
void Object_t::mHeadway(
        float _mHeadway)
{
    m_mHeadway = _mHeadway;
}

/*!
 * @brief This function returns the value of member mHeadway
 * @return Value of member mHeadway
 */
float Object_t::mHeadway() const
{
    return m_mHeadway;
}

/*!
 * @brief This function returns a reference to member mHeadway
 * @return Reference to member mHeadway
 */
float& Object_t::mHeadway()
{
    return m_mHeadway;
}


/*!
 * @brief This function sets a value in member mRealWidth
 * @param _mRealWidth New value for member mRealWidth
 */
void Object_t::mRealWidth(
        int32_t _mRealWidth)
{
    m_mRealWidth = _mRealWidth;
}

/*!
 * @brief This function returns the value of member mRealWidth
 * @return Value of member mRealWidth
 */
int32_t Object_t::mRealWidth() const
{
    return m_mRealWidth;
}

/*!
 * @brief This function returns a reference to member mRealWidth
 * @return Reference to member mRealWidth
 */
int32_t& Object_t::mRealWidth()
{
    return m_mRealWidth;
}


/*!
 * @brief This function sets a value in member mRealHeight
 * @param _mRealHeight New value for member mRealHeight
 */
void Object_t::mRealHeight(
        int32_t _mRealHeight)
{
    m_mRealHeight = _mRealHeight;
}

/*!
 * @brief This function returns the value of member mRealHeight
 * @return Value of member mRealHeight
 */
int32_t Object_t::mRealHeight() const
{
    return m_mRealHeight;
}

/*!
 * @brief This function returns a reference to member mRealHeight
 * @return Reference to member mRealHeight
 */
int32_t& Object_t::mRealHeight()
{
    return m_mRealHeight;
}


/*!
 * @brief This function sets a value in member mWidthHeightIsValid
 * @param _mWidthHeightIsValid New value for member mWidthHeightIsValid
 */
void Object_t::mWidthHeightIsValid(
        bool _mWidthHeightIsValid)
{
    m_mWidthHeightIsValid = _mWidthHeightIsValid;
}

/*!
 * @brief This function returns the value of member mWidthHeightIsValid
 * @return Value of member mWidthHeightIsValid
 */
bool Object_t::mWidthHeightIsValid() const
{
    return m_mWidthHeightIsValid;
}

/*!
 * @brief This function returns a reference to member mWidthHeightIsValid
 * @return Reference to member mWidthHeightIsValid
 */
bool& Object_t::mWidthHeightIsValid()
{
    return m_mWidthHeightIsValid;
}


/*!
 * @brief This function sets a value in member mXVelocity
 * @param _mXVelocity New value for member mXVelocity
 */
void Object_t::mXVelocity(
        float _mXVelocity)
{
    m_mXVelocity = _mXVelocity;
}

/*!
 * @brief This function returns the value of member mXVelocity
 * @return Value of member mXVelocity
 */
float Object_t::mXVelocity() const
{
    return m_mXVelocity;
}

/*!
 * @brief This function returns a reference to member mXVelocity
 * @return Reference to member mXVelocity
 */
float& Object_t::mXVelocity()
{
    return m_mXVelocity;
}


/*!
 * @brief This function sets a value in member mYVelocity
 * @param _mYVelocity New value for member mYVelocity
 */
void Object_t::mYVelocity(
        float _mYVelocity)
{
    m_mYVelocity = _mYVelocity;
}

/*!
 * @brief This function returns the value of member mYVelocity
 * @return Value of member mYVelocity
 */
float Object_t::mYVelocity() const
{
    return m_mYVelocity;
}

/*!
 * @brief This function returns a reference to member mYVelocity
 * @return Reference to member mYVelocity
 */
float& Object_t::mYVelocity()
{
    return m_mYVelocity;
}


/*!
 * @brief This function sets a value in member mVelocityIsValid
 * @param _mVelocityIsValid New value for member mVelocityIsValid
 */
void Object_t::mVelocityIsValid(
        bool _mVelocityIsValid)
{
    m_mVelocityIsValid = _mVelocityIsValid;
}

/*!
 * @brief This function returns the value of member mVelocityIsValid
 * @return Value of member mVelocityIsValid
 */
bool Object_t::mVelocityIsValid() const
{
    return m_mVelocityIsValid;
}

/*!
 * @brief This function returns a reference to member mVelocityIsValid
 * @return Reference to member mVelocityIsValid
 */
bool& Object_t::mVelocityIsValid()
{
    return m_mVelocityIsValid;
}


/*!
 * @brief This function sets a value in member mDiameter
 * @param _mDiameter New value for member mDiameter
 */
void Object_t::mDiameter(
        int32_t _mDiameter)
{
    m_mDiameter = _mDiameter;
}

/*!
 * @brief This function returns the value of member mDiameter
 * @return Value of member mDiameter
 */
int32_t Object_t::mDiameter() const
{
    return m_mDiameter;
}

/*!
 * @brief This function returns a reference to member mDiameter
 * @return Reference to member mDiameter
 */
int32_t& Object_t::mDiameter()
{
    return m_mDiameter;
}


/*!
 * @brief This function sets a value in member mDiameterIsValid
 * @param _mDiameterIsValid New value for member mDiameterIsValid
 */
void Object_t::mDiameterIsValid(
        bool _mDiameterIsValid)
{
    m_mDiameterIsValid = _mDiameterIsValid;
}

/*!
 * @brief This function returns the value of member mDiameterIsValid
 * @return Value of member mDiameterIsValid
 */
bool Object_t::mDiameterIsValid() const
{
    return m_mDiameterIsValid;
}

/*!
 * @brief This function returns a reference to member mDiameterIsValid
 * @return Reference to member mDiameterIsValid
 */
bool& Object_t::mDiameterIsValid()
{
    return m_mDiameterIsValid;
}


/*!
 * @brief This function sets a value in member mTrend
 * @param _mTrend New value for member mTrend
 */
void Object_t::mTrend(
        int32_t _mTrend)
{
    m_mTrend = _mTrend;
}

/*!
 * @brief This function returns the value of member mTrend
 * @return Value of member mTrend
 */
int32_t Object_t::mTrend() const
{
    return m_mTrend;
}

/*!
 * @brief This function returns a reference to member mTrend
 * @return Reference to member mTrend
 */
int32_t& Object_t::mTrend()
{
    return m_mTrend;
}


/*!
 * @brief This function sets a value in member mScore
 * @param _mScore New value for member mScore
 */
void Object_t::mScore(
        float _mScore)
{
    m_mScore = _mScore;
}

/*!
 * @brief This function returns the value of member mScore
 * @return Value of member mScore
 */
float Object_t::mScore() const
{
    return m_mScore;
}

/*!
 * @brief This function returns a reference to member mScore
 * @return Reference to member mScore
 */
float& Object_t::mScore()
{
    return m_mScore;
}


/*!
 * @brief This function sets a value in member mIntrusion
 * @param _mIntrusion New value for member mIntrusion
 */
void Object_t::mIntrusion(
        bool _mIntrusion)
{
    m_mIntrusion = _mIntrusion;
}

/*!
 * @brief This function returns the value of member mIntrusion
 * @return Value of member mIntrusion
 */
bool Object_t::mIntrusion() const
{
    return m_mIntrusion;
}

/*!
 * @brief This function returns a reference to member mIntrusion
 * @return Reference to member mIntrusion
 */
bool& Object_t::mIntrusion()
{
    return m_mIntrusion;
}


// Include auxiliary functions like for serializing/deserializing.
#include "Object_tCdrAux.ipp"

